package com.vanysoft.business.base.role.dao;

import com.vanysoft.business.base.role.entity.TBaseRoleFunctions;

import java.util.List;
import java.util.Map;

public interface BaseRoleFunctionsMapper {
    int deleteByPrimaryKey(String roleFuncionId);

    int insert(TBaseRoleFunctions record);

    TBaseRoleFunctions selectByPrimaryKey(String roleFuncionId);

    List<TBaseRoleFunctions> selectAll();

    int updateByPrimaryKey(TBaseRoleFunctions record);

    /**
     * Function Name               queryRoleFunctionByRoleCode
     *
     * @param roleCode
     * @return
     * @description 根据角色代码查询角色拥有功能权限字符串-非递归
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月7日 上午11:17:13          SharpClaw_x                     Initial
     * *********************************************************************
     */
    String queryRoleFunctionByRoleCode(String roleCode);


    /**
     * Function Name               queryManagementScopeByUserCode
     *
     * @param roleCode
     * @return
     * @description 根据角色代码查询角色拥有的数据权限
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月7日 上午11:35:27          SharpClaw_x                     Initial
     * *********************************************************************
     */
    String queryManagementScopeByRoleCode(String roleCode);

    /**
     * Function Name               deletRoleFunctionByRoleCode
     *
     * @param roleCode
     * @description 根据角色代码删除角色所拥有的所有数据权限
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月7日 上午11:35:38          SharpClaw_x                     Initial
     * *********************************************************************
     */
    void deleteAllRoleFunctionByRoleCode(String roleCode);

    /**
     * Function Name               loadDataScopeByRoleCode
     *
     * @param roleCode
     * @return
     * @description 根据角色编号查询已分配的数据权限信息-非递归
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月7日 下午3:34:26          SharpClaw_x                     Initial
     * *********************************************************************
     */
    String loadDataScopeByRoleCode(String roleCode);

    /**
     * Function Name               queryCountRoleFunctionByRoleCode
     *
     * @param roleCode
     * @return
     * @description 根据角色代码查询是否拥有数据功能权限
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月7日 下午5:13:30          SharpClaw_x                     Initial
     * *********************************************************************
     */
    int queryCountRoleFunctionByRoleCode(String roleCode);

    /**
     * Function Name               modifyRoleDataScopeByRoleCode
     *
     * @param checkRoleCode
     * @param orgCodes
     * @description 根据角色代码, 数据权限字符串  分配与移除数据权限
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月7日 下午5:17:32          SharpClaw_x                     Initial
     * *********************************************************************
     */
    void modifyRoleDataScopeByRoleCode(Map<String, Object> paramsMap);


    /**
     * Function Name               loadFunctionByUserCodeUnion
     *
     * @param userCode
     * @return
     * @description 已分配功能字符串集(非递归)
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月28日 下午4:13:58          SharpClaw_x                     Initial
     * *********************************************************************
     */
    String loadFunctionByUserCodeUnion(String userCode);

}